package com.vca.common.response;

import com.alibaba.fastjson.JSONArray;
import com.vca.common.vo.TalkInfoVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * @author chenbing
 * @date 2022/11/3   14:15
 */
@Data
public class TalkResponse {

    @ApiModelProperty(value = "主键id")
    private Long id;

    @ApiModelProperty(value = "讲座名称")
    private String name;

    @ApiModelProperty(value = "英文讲座名称")
    private String nameEn;

    @ApiModelProperty(value = "讲座简介")
    private String introduction;

    @ApiModelProperty(value = "英文讲座简介")
    private String introductionEn;

    @ApiModelProperty(value = "是否付费  0=免费  1=付费")
    private Integer isPay;

    @ApiModelProperty(value = "讲座价格")
    private BigDecimal price;

    @ApiModelProperty(value = "讲座封面图")
    private String cover;

    @ApiModelProperty(value = "课程轮播图")
    private JSONArray carouselMap;

    @ApiModelProperty(value = "讲座排期ID")
    private Long schedulingId;

    @ApiModelProperty(value = "讲座的开始日期")
    private String schedulingDate;

    @ApiModelProperty(value = "讲座开始时间")
    private String schedulingStartTime;

    @ApiModelProperty(value = "讲座结束时间")
    private String schedulingEndTime;

    @ApiModelProperty(value = "当前讲座所剩席位")
    private Integer remainingSeatCount;

    @ApiModelProperty(value = "讲座地址")
    private HashMap<String, Object> courseAddress;

    @ApiModelProperty(value = "课程详情")
    private TalkInfoVo talkInfo;

//    @ApiModelProperty(value = "当前所排的所有讲座")
//    private List<TalkSchedulingResponse> talkSchedulingResponseList;

    @ApiModelProperty(value = "讲座类型 1=线下讲座 2=线上讲座")
    private Integer talkType;

    @ApiModelProperty(value = "讲座类型名称")
    private String talkTypeName;

    @ApiModelProperty(value = "英文讲座类型名称")
    private String talkTypeNameEn;

    @ApiModelProperty(value = "讲座时长")
    private String duration;

    @ApiModelProperty(value = "可选语言  key=>语言ID value=>语言名称")
    private HashMap<Integer, String> optionalLanguage;

    @ApiModelProperty(value = "观看平台")
    private String viewingPlatformName;

    @ApiModelProperty(value = "相关课程 推荐")
    private List<CourseAboutResponse> eventRecommendations;

    @ApiModelProperty(value = "你可能喜欢的商品 推荐")
    private List<CourseAboutResponse> shopRecommendations;

    @ApiModelProperty(value = "相关出版物推荐")
    private List<CourseAboutResponse> publicationRecommendations;

    @ApiModelProperty(value = "主图视频")
    private String mainPictureVideo;

    @ApiModelProperty(value = "主图视频-宽")
    private Integer mainPictureVideoWidth;

    @ApiModelProperty(value = "主图视频-高")
    private Integer mainPictureVideoHeight;

    @ApiModelProperty(value = "分享海报")
    private String sharePoster;

    @ApiModelProperty(value = "限量")
    private Integer quota;

    @ApiModelProperty(value = "是否收藏 false=未收藏 true=已收藏")
    private Boolean isCollection = false;

    @ApiModelProperty(value = "状态 false=Inactive true=active")
    private Boolean status;

    @ApiModelProperty(value = "是否删除 0=未删除 1=已删除")
    private Integer isDeleted;

    @ApiModelProperty(value = "当前讲座排期状态 0=已结束 1=进行中 2=未开始")
    private Integer schedulingStatus;

    @ApiModelProperty(value = "当前排期预约状态 true=Reservable false=Non bookable")
    private Boolean appointmentStatus;

//    @ApiModelProperty(value = "当前排期是否预约过 true=Reserved false=No appointment")
//    private Boolean isAppointment=false;

    @ApiModelProperty(value = "当前排期预约是否已截止 true=可以预约 false=不可预约")
    private Boolean isStopAppointment = true;

//    @ApiModelProperty(value = "当前排期是否删除")
//    private Boolean isDel;

    @ApiModelProperty(value = "用户是否预约过讲座 true=Reserved false=No appointment")
    private Boolean isAppointment = false;

    @ApiModelProperty(value = "待核销订单数量")
    private Integer orderQuantityToBeWrittenOff = 0;

    @ApiModelProperty(value = "已完成订单数量")
    private Integer completedOrderQuantity = 0;

//    @ApiModelProperty(value = "待评价订单数量")
//    private Integer quantityOfOrdersToBeEvaluated = 0;

    @ApiModelProperty(value = "讲座所有排期总共所剩的席位")
    private Integer totalSeatsLeftForAllScheduledTalk = 0;

    @ApiModelProperty(value = "直播状态 1:直播中, 2:预约中, 3:结束, 4:点播, 5:回放")
    private Integer liveBroadcastStatus = 0;

    @ApiModelProperty(value = "直播链接")
    private String liveBroadLink = "https://baidu.com/";

    @ApiModelProperty(value="跳转链接")
    private String link;

    @ApiModelProperty(value = "视频号ID")
    private String channelsId;

    @ApiModelProperty(value = "视频id")
    private String videoId;
}
